1. Field
The present embodiments relate to clustered computer systems. More specifically, the present embodiments relate to techniques for migrating the state of a virtual cluster from a source cluster computer system to a target cluster computer system.
2. Related Art
Until recently, it was common for customers to dedicate a single physical cluster—a collection of interconnected computers—to one cluster application or a closely related set of cluster applications. The use of a dedicated cluster simplified resource management and isolated application faults to just the physical cluster. The relatively low cost of computer hardware made this approach affordable.
Although application processing demands have grown over time, in many cases these demands have grown at a much slower rate than the processing capacity of the computer systems. As a result, many physical clusters now sit mostly idle, with significant surplus capacity in all areas, including processor, storage, and networking.
The large amounts of idle processing capacity present a compelling opportunity to organizations to better utilize such systems. For example, in an effort to reclaim some of the unused capacity, some organizations have begun hosting multiple cluster applications on a single physical cluster. Concerns, however, about unknown and unintended interactions between cluster applications, especially with regards to security and resource management, have made these organizations wary of mixing applications (sometimes even on traditional physical clusters of computing nodes). Allaying these legitimate concerns and yet taking advantage of better system utilization is a challenge.
Virtual clusters address these concerns and provide safer ways to host multiple cluster applications in different virtual clusters on a single hardware configuration. To take advantage of idle processing capacity, one or more such virtual clusters can run on the same physical hardware cluster configuration. These virtual clusters are “islands of processing,” which are isolated from each other. Hence, problems that may plague one virtual cluster do not affect any other virtual cluster, even though they are running on the same hardware. A virtual cluster “virtualizes” a physical cluster hosting a cluster application in the same way that physical memory in a computer system can be made “virtual” to give the illusion that all the physical memory is available to a single application and that the single application is the only application running on the computer.
Though the technology to achieve virtualization has added considerable flexibility—permitting multiple clusters to run on the same hardware configuration for better utilization—it comes at the cost of complexity. Today an operating system can not only provide multiple separate application environments as exemplified by operating system virtualization technology, it can also run on either a virtual machine or a physical machine. Thus, one machine may host multiple operating systems; a single collection of hardware machines may support multiple clusters. Virtualization technology has blurred the distinction between the clusters of hardware machines of yesterday and one or more clusters coexisting on the same hardware configuration of today.
Because an organization can spend significant time and effort testing a virtual cluster configuration, it is convenient if that same virtual cluster configuration can be easily migrated to other sites. Moreover, the administrative work required to configure a virtual cluster is a major obstacle that limits its adoption by customers. Configuring a virtual cluster configuration entails a large number of settings, including IP addresses, node names, storage devices, file systems, applications, and so on—getting all the details just right is a time-consuming and error-prone process.